home *** CD-ROM | disk | FTP | other *** search
/ Game Audio Programming / GameAudioProgramming.iso / Extras / Ogg Vorbis / vorbis_sdk / include / vorbis / vorbisenc.h < prev    next >
Encoding:
C/C++ Source or Header  |  2002-06-30  |  2.6 KB  |  94 lines

  1. /********************************************************************
  2.  *                                                                  *
  3.  * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
  4.  * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
  5.  * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
  6.  * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
  7.  *                                                                  *
  8.  * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001             *
  9.  * by the XIPHOPHORUS Company http://www.xiph.org/                  *
  10.  *                                                                  *
  11.  ********************************************************************
  12.  
  13.  function: vorbis encode-engine setup
  14.  last mod: $Id: vorbisenc.h,v 1.10 2002/07/01 11:20:10 xiphmont Exp $
  15.  
  16.  ********************************************************************/
  17.  
  18. #ifndef _OV_ENC_H_
  19. #define _OV_ENC_H_
  20.  
  21. #ifdef __cplusplus
  22. extern "C"
  23. {
  24. #endif /* __cplusplus */
  25.  
  26. #include "codec.h"
  27.  
  28. extern int vorbis_encode_init(vorbis_info *vi,
  29.                   long channels,
  30.                   long rate,
  31.                   
  32.                   long max_bitrate,
  33.                   long nominal_bitrate,
  34.                   long min_bitrate);
  35.  
  36. extern int vorbis_encode_setup_managed(vorbis_info *vi,
  37.                        long channels,
  38.                        long rate,
  39.                        
  40.                        long max_bitrate,
  41.                        long nominal_bitrate,
  42.                        long min_bitrate);
  43.   
  44. extern int vorbis_encode_setup_vbr(vorbis_info *vi,
  45.                   long channels,
  46.                   long rate,
  47.                   
  48.                   float /* quality level from 0. (lo) to 1. (hi) */
  49.                   );
  50.  
  51. extern int vorbis_encode_init_vbr(vorbis_info *vi,
  52.                   long channels,
  53.                   long rate,
  54.                   
  55.                   float base_quality /* quality level from 0. (lo) to 1. (hi) */
  56.                   );
  57.  
  58. extern int vorbis_encode_setup_init(vorbis_info *vi);
  59.  
  60. extern int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg);
  61.  
  62. #define OV_ECTL_RATEMANAGE_GET       0x10
  63.  
  64. #define OV_ECTL_RATEMANAGE_SET       0x11
  65. #define OV_ECTL_RATEMANAGE_AVG       0x12
  66. #define OV_ECTL_RATEMANAGE_HARD      0x13
  67.  
  68. #define OV_ECTL_LOWPASS_GET          0x20
  69. #define OV_ECTL_LOWPASS_SET          0x21
  70.  
  71. #define OV_ECTL_IBLOCK_GET           0x30
  72. #define OV_ECTL_IBLOCK_SET           0x31
  73.  
  74. struct ovectl_ratemanage_arg {
  75.   int    management_active;
  76.  
  77.   long   bitrate_hard_min;
  78.   long   bitrate_hard_max;
  79.   double bitrate_hard_window;
  80.  
  81.   long   bitrate_av_lo;
  82.   long   bitrate_av_hi;
  83.   double bitrate_av_window;
  84.   double bitrate_av_window_center;
  85. };
  86.  
  87. #ifdef __cplusplus
  88. }
  89. #endif /* __cplusplus */
  90.  
  91. #endif
  92.  
  93.  
  94.